//package com.uchedao.seller.manager;
//
//import android.content.Context;
//
//import com.android.volley.DefaultRetryPolicy;
//import com.android.volley.Response;
//import com.android.volley.VolleyError;
//import com.google.gson.Gson;
//import com.lidroid.xutils.DbUtils;
//import com.lidroid.xutils.db.sqlite.Selector;
//import com.lidroid.xutils.db.sqlite.WhereBuilder;
//import com.lidroid.xutils.exception.DbException;
//import com.uchedao.seller.config.Api;
//import com.uchedao.seller.http.VolleyUtil;
//import com.uchedao.seller.http.request.GetArrayRequest;
//import com.uchedao.seller.http.response.CityResponse;
//import com.uchedao.seller.http.response.ProvinceResponse;
//import com.uchedao.seller.ui.carlist.entity.CityEntity;
//import com.uchedao.seller.ui.carlist.entity.ProvinceEntity;
//
//import java.util.List;
//
///**
// * Created by hang on 2015/10/23.
// */
//public class LocationManager {
//
//    private static LocationManager instance;
//
//    private Context mContext;
//
//    private LocationManager(Context context) {
//        this.mContext = context;
//    }
//
//    public synchronized static LocationManager getInstance(Context context) {
//        if(instance == null)
//            instance = new LocationManager(context);
//        return instance;
//    }
//
//    /**
//     * 获取省份数据
//     */
//    public void getProvinceList(final LoadProvinceCallback callback) {
//        DbUtils db = DBManager.getInstance(mContext).getDB();
//        try {
//            List<ProvinceEntity> provinces = db.findAll(ProvinceEntity.class);
//            if(provinces==null || provinces.size()<=0) {
//                loadProvinceFromNet(callback);
//            } else if(callback != null) {
//                callback.loadComplete(provinces);
//            }
//        } catch (DbException e) {
//            e.printStackTrace();
//            if(callback != null)
//                callback.loadComplete(null);
//        } finally {
//            db.close();
//        }
//    }
//
//    /**
//     * 从云端获取省份数据
//     */
//    public void loadProvinceFromNet(final LoadProvinceCallback callback) {
//        String url = Api.Action.PROVINCE_LIST;
//        GetArrayRequest req = new GetArrayRequest(url, new Response.Listener<String>() {
//            @Override
//            public void onResponse(String response) {
//                ProvinceResponse entity  = new Gson().fromJson(response, ProvinceResponse.class);
//                if(callback != null)
//                    callback.loadComplete(entity.getData());
//                saveProvince(entity.getData());
//            }
//        }, new Response.ErrorListener() {
//            @Override
//            public void onErrorResponse(VolleyError error) {
//            }
//        });
//        req.setTag("loadProvinceFromNet");
//        //设置超时时间 10 ＊ 1000
//        req.setRetryPolicy(new DefaultRetryPolicy(10 * 1000, 1, 1.0f));
//        VolleyUtil.getInstance().addToRequestQueue(req);
//    }
//
//    /**
//     * 存储省份数据
//     */
//    public void saveProvince(final List<ProvinceEntity> data) {
//        if(data==null || data.size()<=0)
//            return;
//
//        new Thread(new Runnable() {
//            @Override
//            public void run() {
//                DbUtils db = DBManager.getInstance(mContext).getDB();
//                try {
//                    db.deleteAll(ProvinceEntity.class);
//                    db.saveAll(data);
//                } catch (DbException e) {
//                    e.printStackTrace();
//                } finally {
//                    db.close();
//                }
//            }
//        }).start();
//    }
//
//    /**
//     * 获取城市列表
//     */
//    public void getCityList(final int provinceId, final LoadCityCallback callback) {
//        DbUtils db = DBManager.getInstance(mContext).getDB();
//        try {
//            List<CityEntity> cities = db.findAll(Selector.from(CityEntity.class).where("province_id", "=", provinceId));
//            if(cities==null || cities.size()<=0) {
//                loadCityFromNet(provinceId, callback);
//            } else if(callback != null) {
//                callback.loadComplete(cities);
//            }
//        } catch (DbException e) {
//            e.printStackTrace();
//            if(callback != null)
//                callback.loadComplete(null);
//        } finally {
//            db.close();
//        }
//    }
//
//    /**
//     * 从云端获取城市列表
//     */
//    public void loadCityFromNet(final int provinceId, final LoadCityCallback callback) {
//        String url = Api.Action.CITY_LIST + "?province_id=" + provinceId;
//        GetArrayRequest req = new GetArrayRequest(url, new Response.Listener<String>() {
//            @Override
//            public void onResponse(String response) {
//                CityResponse entity  = new Gson().fromJson(response, CityResponse.class);
//                if(callback != null)
//                    callback.loadComplete(entity.getData());
//                saveCity(provinceId, entity.getData());
//            }
//        }, new Response.ErrorListener() {
//            @Override
//            public void onErrorResponse(VolleyError error) {
//            }
//        });
//        req.setTag("loadCityFromNet");
//        //设置超时时间 10 ＊ 1000
//        req.setRetryPolicy(new DefaultRetryPolicy(10 * 1000, 1, 1.0f));
//        VolleyUtil.getInstance().addToRequestQueue(req);
//    }
//
//    /**
//     * 存储城市数据
//     */
//    public void saveCity(final int provinceId, final List<CityEntity> data) {
//        if(data==null || data.size()<=0)
//            return;
//
//        new Thread(new Runnable() {
//            @Override
//            public void run() {
//                DbUtils db = DBManager.getInstance(mContext).getDB();
//                try {
//                    db.delete(CityEntity.class, WhereBuilder.b("province_id", "=", provinceId));
//                    db.saveAll(data);
//                } catch (DbException e) {
//                    e.printStackTrace();
//                } finally {
//                    db.close();
//                }
//            }
//        }).start();
//    }
//
//    /**
//     * 更新本地省市数据
//     */
//    public void syncDataFromNet() {
//        LoadProvinceCallback callback = new LoadProvinceCallback() {
//            @Override
//            public void loadComplete(List<ProvinceEntity> data) {
//                if(data!=null && data.size()>0) {
//                    for(ProvinceEntity item : data)
//                        loadCityFromNet(item.getId(), null);
//                }
//            }
//        };
//        loadProvinceFromNet(callback);
//    }
//
//    public interface LoadProvinceCallback {
//        public void loadComplete(List<ProvinceEntity> data);
//    }
//
//    public interface LoadCityCallback {
//        public void loadComplete(List<CityEntity> data);
//    }
//}
